【iOSDC Japan 2024 レポート】DAY 0「MPEG構造を把握し、VideoToolBoxを使った特殊再生の実装方法を理解する」を聞いてきた。

【iOSDC Japan 2024 レポート】DAY 0「MPEG構造を把握し、VideoToolBoxを使った特殊再生の実装方法を理解する」を聞いてきた。

Clock Icon2024.08.23

はじめに

年に一度のiOSエンジニアの為のお祭りiOSDC Japan 2024に参加しています。

せっかくなので、参加したセッションのレポートを書きたいと思います。

MPEG構造を把握し、VideoToolBoxを使った特殊再生の実装方法を理解する

登壇者

概要

VideoToolBoxは、AVPlayerなどが属するAVFoundationのさらに低位のレイヤーで、動画の圧縮(エンコード)や伸張(デコード)を行います。AVPlayerは非常に優秀なため、ほとんどの場合、VideoToolBoxを直接利用する必要はありません。しかし、MPEGの構造を理解し、VideoToolBoxを使って特殊再生を行うことで、AVPlayerがどれほど複雑な処理を行っているかを垣間見ることができます。

このトークでは、カメラで撮影した映像ファイルをVideoToolBoxで特殊再生する方法を解説します。

  1. PTS (Presentation Time Stamp) と同期処理の基礎:
    PTSの役割と、時間同期ついて説明します。
  2. GOP (Group of Pictures) の基礎:
    Iフレーム、Pフレーム、Bフレームの圧縮方式とその制約について説明します。
  3. 特殊再生の実現方法:
    スキップ、シーク、倍速再生などの特殊再生を行うために、どのようにVideoToolBoxをどう利用すれば良いのかを具体的なコードを交えて説明します。

このトークを通じて、参加者はMPEGフォーマットの重要な仕組みを理解し、VideoToolBoxを用いた特殊再生の実装方法について学ぶことができます。

引用: fortee

資料

https://www.docswell.com/s/BlueEventHorizon/52241E-2024-08-22-113221

感想

まずはMPEGの説明や歴史から説明していただき、それから日頃、AVPlayerがいい感じやってくれているところを、MPEGの構造を理解してVideoToolBoxで実装を行ってくれました。

MPEGってMoving Picture Experts Groupの略なんですね、、。

普段は何気なく見ている動画ですが、動画のコーデックや音声のコーデック、タイミングの制御、PTS(Presentation Time Stamp)の重要性など、こんなにも動画再生における処理が複雑だったのかと改めて認識しました。

今回はあえてVideoToolBoxを使用した特殊再生を見せていただいたのですが、「特に特別な理由がない限り、AVPlayerを使用した方がいい」とのことでした。笑

CallKitと併用すると、AVPlayer使えなくあるとのことで 、そういった使用できない場合は、VideoToolBoxなどの下位レイヤーに触れる必要があるとのことでした。

MPEGの構造を理解することで、どういった処理が必要なのか、されるのかを理解できると見せていただいたことでVideoToolBoxが何故そのような処理を行う必要があるのかの理解も深まる気がしました。

この考え方は、VideoToolBoxだけに留まらず、他のものにも活用できそうです。APIがなぜそのような処理をしているのかしっかり掘り下げて理解を深めることが大事ですね。

おわりに

普段、自分があまり触れない領域の話だったので、動画を再度見て理解を深めたいと思います。

参考

https://developer.apple.com/documentation/videotoolbox
https://developer.apple.com/documentation/avfoundation/avplayer/

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.